//
//  TrackTool.h
//  location
//
//  Created by Dongxiang Xu on 2025/8/28.
//

#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>

NS_ASSUME_NONNULL_BEGIN


@interface TrackTool : NSObject

// 按照activity重新分组
+ (NSMutableArray *)sortFormartArray:(NSMutableArray *)array;
//定位点为静止状态（之前为运动），但是一直在位移，优化为运动状态
+ (NSMutableArray *)staticActivityToMovieWithArray:(NSMutableArray *)aArray;
//本来连贯的状态中存在少量的异常点，优化为全程连贯状态
+ (NSMutableArray *)handleAbnormalActivityWithArray:(NSMutableArray *)aArray;
// 一直在位移，但是最远也没有位移出500M的，优化为全程静止
+ (NSMutableArray *)moveActivityToStaticWithArray:(NSMutableArray *)aArray;
// 根据速度和一些条件判断将行程优化为驾车
+ (NSMutableArray *)moveActivityToDriveWithArray:(NSMutableArray *)aArray;
// 计算两个经纬度之间的距离(km)
+ (double)distanceBetweenOrderByLatitudeA:(double)latitude1 latitudeB:(double)latitude2 longitudeA:(double)longitude1 longitudeB:(double)longitude2;
// 一天轨迹中，先执行轨迹去噪逻辑,若最新的一段轨迹为静止，则找出静止开始时间
+ (void)getStaticStartTimeWithData:(NSArray *)data
                              Date:(NSString *)date
                          Yestoday:(void (^)(id _Nullable))yestoday;

// 基于经纬度与时间将点分段为“静止/行程”，仅返回二维 segments（每段为原始点字典数组）
// 仅使用 latitude、longtitude/longitude 与 create_time，不依赖 activity/speed
// 默认参数：进入静止半径500m，离开静止半径600m，最小停留5分钟，最小行程2分钟或200米
// 入参为原始点数组（字典），返回按时间排序后的二维段数组
+ (NSMutableArray<NSArray<NSDictionary *> *> *)segmentsFromLocationArray:(NSArray<NSDictionary *> *)records;


@end

NS_ASSUME_NONNULL_END
